#ifndef K_MEANS_CONFIGURATION_H
#define K_MEANS_CONFIGURATION_H

// structure contenant la configuration du programme
typedef struct{
	int seed;
	int centerNumber;
	int nbIteration;
	char* fileName;
	FILE *logFile ;
	int maxIteration;
}Configuration;
//enum {EUCLEDIENNE = "euc",} DISTANCE_TYPE;
Configuration config;

/**
 * Initialise la configuration du programmme.
 */
void initialiserConfiguration(int, char **);
/**
 * affiche l'usage du programme
 */
void showUsage(char **);
/* permet d'initialiser le seed pour la fonction random
 * qui sera utilisée après pour l'initialisation des centres mobiles.
 * le premier parametre est le nombre d'arguments du programme
 * le second est la liste des arguments passés au programme
 * */
void setSeed(int, char **);

/**
 * permet d'initialiser le nombre de 'iteration
 */
void setNbIteration(int , char **);
/*permet d'initialiser le nom de fichier source de données
 *  le premier parametre est le nombre d'arguments du programme
 * le second est la liste des arguments passés au programme*/
void setFileName(int, char **);

/* permet d'initialiser le nombre des centres mobiles
 *  le premier parametre est le nombre d'arguments du programme
 * le second est la liste des arguments passés au programme*/
void setCentreNumber(int,char**);
/*
 * initialize le nombre maximal d'iteration avant d'arreter l'algorithme
 */
void setMaxIteration(int,char**);
/*
 * initialise le fichier de log ou toutes les traces iront.
 */
void setOutputFile(int,char**);

/*
 * initialise le fichier de log ou toutes les traces iront.
 */
void setDistanceMetric(int,char**);

#endif
